entry.s

.global miniOS_irqhandler miniOS_irqhandler:

msr cpsr_c, #0xc0 | 0x12// IRQ mode ldr sp, = TCB_PtrCurrentTask ldr sp, [sp]

sub lr, lr, #4 add sp, sp, #4 stmia sp!, {r0-r12}^

stmia sp! {sp,lr}^

stmia sp! {lr}

sub sp, sp, #68 mrs r1, spsr stmia sp!, {r1}

ldr sp, TCB_IRQStack bl irqHandler ldr sp, = TCB_PtrNextTask ldr sp, [sp]

ldmia sp!, {r1}

msr spsr_cxsf, r1 ldmia sp!, {r0-r12}^

ldmia sp!, {r13, r14}^

ldmia sp!, {pc}^